From 5ebad7be891d2ca5e57523ecf5c6880b54e84800 Mon Sep 17 00:00:00 2001 From: "harry@localhost.localdomain" Date: Fri, 24 Mar 2006 14:31:20 +0100 Subject: [PATCH] Fix bug 515 by adding a global lock around the hotplug scripts in the non-udev hotplug case only. There are two possible root causes for 515, both of which are only problems in the non-udev hotplug case because udev uses udevsend which already implements the required serialisation. 1) Script concurrency. 2) Kernel reordering hotplug events. This changeset fixes (1) but not (2). Since (1) is the problem that seems to be happening this is probably OK. A fix for (2) for the hotplug case might be to add extra serialisation using state changes in the store but this would impact all the drivers and the code and extra complexity would be redundant once everyone had moved to udev. This doesn't seem worthwhile unless we actually start to see (2) happening. --- tools/examples/xen-backend.agent | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/tools/examples/xen-backend.agent b/tools/examples/xen-backend.agent index 72bbafda21..e662015da2 100755 --- a/tools/examples/xen-backend.agent +++ b/tools/examples/xen-backend.agent @@ -2,6 +2,10 @@ PATH=/etc/xen/scripts:$PATH +. /etc/xen/scripts/locking.sh + +claim_lock xenbus_hotplug_global + case "$XENBUS_TYPE" in vbd) /etc/xen/scripts/block "$ACTION" @@ -25,3 +29,5 @@ case "$ACTION" in offline) ;; esac + +release_lock xenbus_hotplug_global -- 2.30.2